package leetcode_900;

/**
 *@author 周杨
 *ScoreAfterFlippingMatrix_861 一个二维数组里只有01  我们可以反转任意一行或者一列 求最大的每列加起来的数字
 *describe:用贪心算法 保证第一列全为1 AC 67%
 *2018年11月5日 下午12:05:19
 */
public class ScoreAfterFlippingMatrix_861 {
	public int matrixScore(int[][] A) {
		 int row=A.length,col=A[0].length;
		 int res=0;
		 for(int i=0;i<col;++i) {
			 int num=0;//计算此列的值
			 for(int j=0;j<row;++j) {
				 num+=A[j][i]^A[j][0];//看跟第一列的值有多少不同的
			 }
			 res+=Math.max(num, row-num)*(1<<(col-1-i));
		 }
		 return res;
	}
}
